package com.mmall.pay.param;

import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author gg
 * @version RefundParam.java, v 0.1 2019-05-28 18:16 gg
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class RefundParam extends MmallPayConfigParam{

    /**
     * 备注：自己的订单号（三方订单号）
     * 支付订单号
     */
    @NotBlank(message = "订单号不能为空")
    private String outTradeNo;

    /**
     * 备注：
     * 退款订单号
     */
    @NotBlank(message = "退款订单号 不能为空")
    private String outRefundNo;

    /**
     * 字段名：订单金额.
     * 变量名：total_fee
     * 是否必填：是
     * 类型：Int
     * 示例值：100
     * 描述：订单总金额，单位为分，只能为整数，详见支付金额
     */
    @NotNull(message = "订单金额 不能为空")
    private Integer totalFee;

    /**
     * 字段名：退款金额.
     * 变量名：refund_fee
     * 是否必填：是
     * 类型：Int
     * 示例值：100
     * 描述：退款总金额，订单总金额，单位为分，只能为整数，详见支付金额
     * </pre>
     */
    @NotNull(message = "退款金额 不能为空")
    private Integer refundFee;


    /**
     * 字段名：退款原因.
     * 变量名：refund_account
     * 是否必填：否
     * 类型：String(80)
     * 示例值：商品已售完
     * 描述：若商户传入，会在下发给用户的退款消息中体现退款原因
     */
    @NotBlank(message = "退款原因 不能为空")
    private String refundDesc;

    /**
     * 字段名：退款结果通知url.
     * 变量名：notify_url
     * 是否必填：否
     * 类型：String(256)
     * 描述：	异步接收微信支付退款结果通知的回调地址，通知URL必须为外网可访问的url，不允许带参数
     如果参数中传了notify_url，则商户平台上配置的回调地址将不会生效。
     */
    @NotBlank(message = "退款结果通知url 不能为空")
    private String notifyUrl;

    private String returnUrl;


}